Embarcadero Delphi

Embarcadero Delphi
Delphi 2010 Screenshot.png
Delphi 2010
Developer(s) CodeGear
Stable release Delphi XE / August 30, 2010; 5 months ago (2010-08-30)
Development status Active
Written in Pascal
Operating system Microsoft Windows
Available in English, French, German, Japanese
Type Integrated Development Environment
License proprietary commercial software (Embarcadero EULA)
Website www.embarcadero.com/products/delphi

Embarcadero Delphi, formerly CodeGear Delphi, Inprise Delphi and Borland Delphi, is an integrated development environment for Microsoft Windows applications originally developed by Borland and now owned and developed by Embarcadero Technologies. It utilizes a dialect of the Object Pascal programming language known as Delphi.[1] Delphi 2010 is the most recent version and is distributed in three different editions: Professional, Enterprise and Architect.

Contents

History

Delphi was originally a confidential research project at Borland which evolved into a product that was to be called AppBuilder. Shortly before the first release of Borland's AppBuilder, Novell AppBuilder was released, leaving Borland in need of a new name.

Developer Danny Thorpe chose the Delphi codename in reference to the Oracle at Delphi. One of the original goals of Delphi was to provide database connectivity to programmers as a key feature and a popular database package at the time was Oracle database; hence, "If you want to talk to [the] Oracle, go to Delphi". As development continued, the name grew on them and there was growing support within Borland for the name Delphi.[2]

The chief architect behind Delphi was Anders Hejlsberg, who had developed Turbo Pascal. He moved to Microsoft in 1996.

Versions

Inprise Delphi 4.0.
Borland Delphi 1

Delphi 1 was released in 1995 for the 16-bit Windows 3.1 and was an early example of what came to be known as Rapid Application Development (RAD) tools. Delphi 1 was the successor of Turbo Pascal and Borland Pascal, very fast 16-bit native code compilers with its own sophisticated integrated development environment (IDE) and graphical user interface toolkit for DOS (Borland Pascal added Windows IDE and Windows code generation as well). Like Turbo Pascal, Delphi code was written in a dialect of Pascal programming language which is known as Object Pascal.

Borland Delphi 2

Delphi 2, released in 1996, supported 32-bit Windows environments. It included Delphi 1 bundled together for creation of 16-bit Windows 3.1 applications.

Borland Delphi 3

Delphi 3, released in 1997, was the classic Delphi. It supported 32-bit Windows environments. It also included Delphi 1 bundled together for creation of 16-bit Windows 3.1 applications.

Borland Delphi 4

Borland Delphi 4 was released in 1998.

Borland Delphi 5

Borland Delphi 5 was released in 1999.

Kylix

In 2001 a Linux version of Delphi, named Kylix, was released. The IDE was dependent on the Wine libraries rather than Linux's native system libraries (glibc) in order to get a product out quickly and relatively cheaply. The expense of developing a native glibc version of Kylix, combined with the lack of Linux adoption among programmers at the time, caused sales to go soft, and Kylix was quietly abandoned after version 3. This was the first attempt to add Linux support in the Delphi product family.

Kylix was based on the new CLX cross-platform framework, instead of VCL as Delphi.

Borland Delphi 6

Attempts to support both Linux and Windows for cross-platform development were made, and a cross-platform alternative to the VCL known as CLX shipped in 2002 with the release of Delphi 6. This was the second attempt to add Linux support to the Delphi product family (see Kylix above).

Delphi 6 included the same CLX version (CLX 1) as the first version of Kylix mentioned above. Since CLX was created before Delphi 6, its feature set was based on VCL 5; that created some disadvantage for CLX which lacked some features compared to VCL 6 shipped with Delphi 6.[3]

Borland Delphi 7

Delphi 7, released in August 2002, became the standard version used by more Delphi developers than any other single version. It is one of the most successful IDEs created by Borland because of its stability, speed and low hardware requirements and remains actively used to this date[4]. Delphi 7 added support for Windows XP Themes, and added more support for building Web applications. It was also the last version of Delphi which can be used without Activation.

Borland Delphi 8

Delphi 8, released December 2003, was a .NET-only release that allowed developers to compile Delphi Object Pascal code into .NET CIL. The IDE was rewritten to accommodate for .NET development. The IDE changed to a docked interface similar to Microsoft's Visual Studio.NET. Delphi 8 was highly criticized for its low quality and the fact that is was no longer possible to create native applications (*.exe). The inability to generate native applications is only applicable to this release, as the capability was added back in to the next release (Delphi 2005).

Borland Delphi 2005

The next version, Delphi 2005 (Delphi 9, also Borland Developer Studio 3.0), included the Win32 and .NET development in a single IDE, reiterating Borland's commitment to Win32 developers. Delphi 2005 includes design-time manipulation of live data from a database. It also includes an improved IDE and added a for ... in statement (like C#'s foreach) to the language. However, it was criticized by some[5] for its bugs; both Delphi 8 and Delphi 2005 had stability problems when shipped, which were only partially resolved in service packs. The ability to compile native windows applications (*.exe) was added back into Delphi 2005 after being removed in Delphi 8.

Borland Delphi 2006

In late 2005 Delphi 2006 (Delphi 10, Borland Developer Studio 4.0) was released and combined development of C# and Delphi.NET, Delphi Win32 and C++ (Preview when it was shipped but got stable in Service Pack 1) into a single IDE. It was much more stable than Delphi 8 or Delphi 2005 when shipped, and improved even more with the release of service packs and several hotfixes. CLX support was dropped for new applications from this release onwards.

On February 8, 2006 Borland announced that it was looking for a buyer for its IDE and database line of products, which include Delphi, to concentrate on its ALM line.

On September 6, 2006 The Developer Tools Group (the working name of the not yet spun off company) of Borland Software Corporation released single-language versions of Borland Developer Studio, bringing back the popular Turbo name. The Turbo product set includes Turbo Delphi for Win32, Turbo Delphi for .NET, Turbo C++, and Turbo C#. Each version is available in two editions: Explorer—a free downloadable version—and Professional—a lower-priced (US$899 for new user, US$399 for update) version which opens access to thousands of third-party components. Unlike earlier Personal editions of Delphi, new Explorer editions can be used for commercial development.

On November 14, 2006 Borland announced that rather than selling the development tools group it would spin it off into an independent subsidiary company named CodeGear.[6]

Codegear Delphi 2007
Photo of Delphi 2007 box as released by CodeGear in spring 2007.

Delphi 2007 (Delphi 11), the first version by CodeGear, was released on March 16, 2007. The Win32 personality was released first, before the .NET personality of Delphi 2007 which is based on .NET Framework 2.0 was released as part of the CodeGear RAD Studio 2007 product. New features included support for MS Build and enhancements to the Visual Component Library for Windows Vista, but the C#Builder feature was dropped in this release as sales where not as high as expected due to Visual Studio also offering C#. The Windows Form designer for Delphi .NET was also dropped in D2007 because it is based upon part of the .NET framework API which had been changed so drastically by Microsoft in .NET 2.0 that updating the IDE would have been a major undertaking. Later on Delphi.NET was replaced by Delphi Prism, a combination of RemObjects mostly Delphi compatible .NET compiler, Microsofts Visual Studio Shell (a version without C# and VB support) and some Embarcadero technologies like dbExpress. Prism is in so far cross platform capable as it supports the Mono .NET libraries. Delphi 2007 also introduced DBX4 as the next version of dbExpress. For the first time Delphi could be downloaded from the Internet and activated with a license key, a capability powered by the new InstallAware installation technology (itself authored in Delphi, and now shipping in a free, limited edition inside the box with Delphi). Internationalized versions of Delphi 2007 shipped simultaneously in English, French, German and Japanese. RAD Studio 2007 (code named Highlander), which includes .NET and C++Builder development, was released on September 5, 2007.

Borland sold CodeGear to Embarcadero Technologies in 2008. Embarcadero is retaining the CodeGear division created by Borland to identify its tool and database offerings, and Embarcadero has decided to identify its own database tools under the DatabaseGear moniker.

Embarcadero Delphi 2009

Delphi 2009 (Delphi 12, code named Tiburón), added many new features such as completely reworking the VCL and RTL for full Unicode support, and added generics and anonymous methods for Win32 native development. Support for .NET development was dropped from the Delphi IDE. A new product, Delphi Prism, was offered for .NET development in its place. Delphi Prism is a Visual Studio language plug-in, and does not include a RTL or VCL for porting code.

Embarcadero Delphi 2010

Delphi 2010 (aka Delphi 14, code named Weaver; number 13 was skipped), was released on August 25, 2009 and is the second Unicode release of Delphi. It includes a new compiler RTTI system[7], support for Windows 7 direct 2D, touch screen and gestures, a source code formatter, debugger visualizers and the option to also have the old style component palette in the IDE. The new RTTI system makes larger executables than previous versions.[8]

Embarcadero Delphi XE

The latest version of Delphi, Delphi XE (aka Delphi 2011[9], code named Fulcrum), was released on August 30, 2010.

Distinguishing features

Delphi pioneered the era of rapid application development by introducing critical features like application framework and visual window layout designer that drastically reduced application prototyping times.

Delphi uses the Pascal-based programming language called Object Pascal, and compiles Delphi source code into native x86 code. They include the VCL (Visual Component Library), support for COM independent interfaces with reference counted class implementations, and support for a large number of third-party components. Interface implementations can be delegated to fields or properties of classes. Message handlers are implemented by tagging a method of a class with the integer constant of the message to handle.

Delphi has large communities on Usenet and the web (e.g. news://newsgroups.codegear.com) which help solving problems of individual developers. Many Codegear employees actively participate in those communities. A voluntary team (TeamB) also helps out.

A strong emphasis is placed on database connectivity and Delphi offers a rich database component set. The Visual Component Library (VCL) contains a large library of database aware controls, and database access components.

Advantages

Delphi is a strongly typed high-level programming language, intended to be easy to use and originally based on the earlier Object Pascal language. Delphi, in contrast to traditional Pascal, was not primarily designed for education purposes. In addition to high-level language features Delphi also supports low level programming by allowing assembler parts and the notation of direct CPU opcodes is also possible. The language's object orientation features only class- and interface-based polymorphism, making programs written in Delphi more clearly laid out than programs written in some other languages that allow and use multiple inheritance. Metaclasses are first class objects. Objects are actually references to the objects (as in Java) which Delphi implicitly dereferences, so there's usually no need to manually allocate memory for pointers to objects or similar techniques needed in some other languages. There are dedicated reference counted string types (as well as null-terminated strings).

Strings can be concatenated by using the '+' sign, rather than using functions. For those dedicated string types, no manual memory management is necessary as the memory manager handles this. The improved memory manager introduced with Borland Developer Studio 2006 now provides functions to track down memory leaks.

The language is suitable for Rapid Application Development (RAD) and comes with an integrated IDE. The Delphi products all ship with a large framework called VCL (Visual Component Library) including most of its source code. Third-party components (usually available with full source code) are available on the market as well as tools to enhance the IDE or for other Delphi related development tasks. The IDE includes a GUI for localization and translation of created programs which may be deployed to a translator at no additional cost. (Some developers prefer to use 3rd party products for this purpose as they often have more functionality.) The VCL framework maintains a high level of source compatibility between versions which means one can upgrade existing source code easily in most cases to a newer Delphi version. 3rd party libraries either need updates from the vendor or if source code is available a simple recompilation with the newer version may be sufficient. The VCL was an early adopter of Dependency injection or Inversion of Control. The VCL is a sophisticated "re-usable" component model, extensible by the developer. With class helpers one can introduce new functionality to core RTL and VCL classes without changing the original source code of the RTL or VCL.

The quick optimizing single pass compiler can compile to a single executable, thus simplifying distribution and eliminating DLL version issues. The creation of DLLs and ActiveX DLLs or COM Automation servers is also possible, and developers can even create Windows services using Delphi.

The Delphi IDEs since Delphi 2005 increasingly support advanced refactoring features such as Method Extraction, etc.[10] and the possibility to create UML models from the source code or to modify the source through changes made in the model.

Delphi has large communities on Usenet and the web (e.g. news://newsgroups.codegear.com) which help solving problems of individual developers. Many Codegear employees actively participate in those communities. A voluntary team (TeamB) also helps out.

Backward compatibility

Each new release of Delphi attempts to keep as much backwards compatibility as possible. This allows users to build legacy code without worrying about any broken interfaces or functionality.

Limitations

No native 64-bit support

Delphi creates 32-bit native applications only; it is not possible to write 64-bit native Windows applications. 32-bit Windows applications cannot use more than 4 GB of memory. Delphi cannot be used to write plug-ins for 64-bit 3rd party applications and services, such as Windows Explorer. Delphi support for 64-bit applications has been planned for some years, but has been postponed several times. The x64 compiler preview (command-line only) is planned for the first half of 2011. According to the May 2010 roadmap a native x64 RTL/VCL/Cross-platform environment is due later (no date announced).

Not cross platform

Delphi is, in itself, not a cross-platform tool. The latest Delphi release contains Delphi Prism which can be used to develop .NET applications. A cross-platform system, codenamed Project X, was shown on the roadmap in 2008; as of 2010 Project "Pulsar", "Wheelhouse", and "Commodore" are to add cross-platform and 64-bit support to Delphi and C++Builder[11]. Lazarus, an open source system designed to be very compatible with Delphi which contains the most used VCL Components of Delphi, is cross-platform across Linux, Mac OS and Windows.

Backward compatibility

Each new release of Delphi attempts to keep as much backwards compatibility as possible to allow developers to continue to use legacy code without incompatibility of interfaces or functionality. This does to some extent restrict the evolution of the Delphi language; the design of the standard class libraries (VCL/RTL) has become somewhat dated.

Related software

RAD Studio

Embarcadero sells RAD Studio, a suite of development tools which consists of Delphi, Delphi Prism and C++Builder.[12] Like Delphi, there are three different versions of RAD Studio: Professional edition, Enterprise edition and Architect edition.[13]

Delphi for PHP

Delphi for PHP is an IDE for PHP that provides true RAD functionality. It has a form designer similar to that of Delphi or Visual Basic, and an integrated debugger based on the Apache web server. It also includes a VCL library ported to PHP. Unlike other IDEs it supports Web 2.0 features such as AJAX.

Delphi for PHP was announced on March 20, 2007, and is based on Qadram Q studio, which is now wholly owned by CodeGear.

Delphi Prism

Delphi Prism is a product from Embarcadero based on the Oxygene programming language (previously known as Chrome). Delphi Prism is the replacement for Delphi.NET, which was discontinued. The Prism product runs inside the Visual Studio IDE and is part of the "RAD Studio" IDE environment.[12]

Open-source software

Third-party software

Third-party software (components, libraries, plugins, tools which enhance basic Delphi functionality) are widely presented and categorized on specialized sites: http://torry.net/, http://www.componentsource.com/

Most valuable, widely used libraries and extensions

Some software written in Delphi

See also

References

  1. Zarko Gajic. "Introducing Borland Delphi". About.com. http://delphi.about.com/od/beginners/l/aa031202a.htm. Retrieved April 12, 2010. 
  2. David Intersimone. "Borland History: Why the name "Delphi?"". http://bdn.borland.com/article/20396. Retrieved 2006-11-28. 
  3. Brian Long. "VCL versus CLX". http://www.blong.com/Conferences/DCon2001/VCLvsCLX/VCLvsCLX.htm. 
  4. Nick Hodges. ""Top ten reason to upgrade from Delphi 7". http://edn.embarcadero.com/article/39136. 
  5. Tim Anderson. "Borland's quality problems and Delphi 2005". http://www.itwriting.com/blog/?postid=123. Retrieved 2010-06-16. 
  6. David Intersimone. "Press Release: Borland forming CodeGear to focus exclusively on developer productivity". http://bdn.borland.com/article/33819. Retrieved 2006-11-28. 
  7. "Delphi 2010 What’s New". http://www.embarcadero.com/products/delphi/whats-new. Retrieved 2006-11-28. 
  8. Release Notes for Embarcadero Delphi 2010 and C++Builder 2010
  9. "Delphi Insider: Sneak Preview: Delphi 2011 is Delphi XE". http://delphi-insider.blogspot.com/2010/08/sneak-preview-delphi-2011-is-delphi-xe.html. Retrieved 2010-09-02. 
  10. "A First Look at (Borland Developer Studio) Delphi 2006 - Refactoring in Delphi 2006". About.com. http://delphi.about.com/od/productreviews/ss/delphi2006first_6.htm. Retrieved 2007-12-19. 
  11. "Delphi and C++Builder Roadmap". embarcadero.com. http://edn.embarcadero.com/article/39934. Retrieved 2008-09-29. 
  12. 12.0 12.1 "Embarcadero RAD Studio 2010". Embarcadero Technologies. http://www.embarcadero.com/products/rad-studio. Retrieved 9 December 2009 quote=Embarcadero® RAD Studio 2010 is the industry’s most powerful rapid application development suite for visually building GUI-intensive, data-driven end-user applications for both native Windows® and .NET. RAD Studio includes Delphi®, C++Builder® and Delphi Prism™, enabling you to deliver applications up to 5x faster across multiple Windows and database platforms.. 
  13. "Embarcadero RAD Studio - Product Editions". Embarcadero Technologies. http://www.embarcadero.com/products/rad-studio/product-editions. Retrieved 9 December 2009. 

External links

"Delphi Basics website provides help and reference for the fundamentals of the Delphi language. It gives an introduction to the Delphi Object Oriented Language for beginners, and provides reference for experienced programmers."